package conbination;

/**
 * 轮胎*/
public class Tire {
    public String brand;
    public void work() {
        System.out.println("轮胎开始运行！");
    }
}

/**
 * 引擎*/
class Engine{
    public void work() {
        System.out.println("引擎启动！");
    }
}

/**
 * 汽车*/
class Car{
    /**
     * 组合就是：不去继承他们，而是在Car类中将 Tire 与 Engine 的实例对象作为字段
     * 这样就可以调用他们的成员方法和变量了*/
    public Tire tire = new Tire();
    public Engine engine = new Engine();

    public static void main(String[] args) {
        /**
         * 这就是组合！
         * Car并没有继承其它两个类，但是却可以通过Car调用其他两个类的成员变量、成员方法*/
        Car Benz = new Car();
        Benz.tire.work();
        Benz.engine.work();
        Benz.tire.brand = "米其林";
        System.out.println(Benz.tire.brand);
    }
}
